草庐IT

c++ - XML Schema 到 C++ 类

全部标签

java - 将 Java float 转换为 C

我有一个java程序使用包含大量float的对象。事情是出于优化原因,我需要将这段代码的一部分转换成C。为了进行基准测试,我已经在C中转换了所需的方法。事情是不再将对象作为输入,而是将这些float组作为输入。我将这些数组保存在Java文件中,以便从我的C代码轻松访问它。问题是,Javafloat和Cfloat显然完全不同,我在C代码中得到了虚拟值。我没有在互联网上找到任何可以帮助我完成这项任务的资源。Ididfindthis,但它适用于C++,我无权访问这些类。您有什么建议吗?我想我可以开发某种转换器,但这可能需要一些时间,并且可能有更好的在线解决方案。谢谢,编辑:我正在使用Data

java - JNI GetMethodID 不适用于内部类的构造函数

我有一个带有私有(private)子类的类。我想在JNI包装器中创建该子类的实例并将其返回。我用谷歌搜索并试图让它工作但没有成功(methodID为空)。有什么建议吗?JNIEXPORTjobjectJNICALLJava_some_Class_some_Jni_Method(JNIEnv*env,jobjectthis){jclasscls=(*env)->FindClass(env,"someClass$someSubclass");if(cls==NULL)printf("jclasserror.");jmethodIDmethodID=(*env)->GetMethodID(e

java - 可以让 JNI 支持类路径中的通配符扩展吗?

我有一个通过JNI调用Java的C二进制文件。我将CLASSPATH设置为somedir/*以获取somedir中的所有jar。当我运行二进制文件时,找不到所需的类定义。当我运行时javathat.class's.name从同一个命令行,成功找到类。如果我明确地将somedir/中的所有jar添加到类路径,一切都很好,但这会导致非常长的类路径,我想避免。通过JNI执行的JVM是否支持类路径的通配符扩展?能做到吗? 最佳答案 我通过阅读热点源码找到了答案。只有通过CLASSPATH或-cp/-classpath传递的路径才能进行通配符

java - 如何在 Java 中创建 C 风格的 union 体?

我必须将我的代码段之一从C转换为java。代码如下。unioncommandString{charcommndStr[20];struct{charcommnd[4];charseparator1;charagr1[5];charseparator2;chararg2[3];charseparator3;charadditionalArg[5];};};我不想使用任何显式解析器或者我不想使用System.arraycopy方法。有没有办法以我喜欢的方式做到这一点? 最佳答案 Java语言不像C语言那样直接支持union或直接控制内存

java - C 中的埃及分数

古埃及人只使用1/n形式的分数,因此任何其他分数都必须表示为此类单位分数的总和,而且所有单位分数都不相同!在C或java中使任何分数成为埃及分数(总和越少越好)的好方法是什么,可以使用什么算法,分支定界,a*?例如:3/4=1/2+1/46/7=1/2+1/3+1/42 最佳答案 一种方法是贪心算法。给定分数f,找到小于或等于f的最大埃及分数1/n(即n=ceil(1/f)).然后对余数f-1/n重复,直到f==0。所以对于3/4,您将计算:n=ceil(4/3)=2;余数=3/4-1/2=1/4n=ceil(4)=4;余数=1/4

java - 使用调用 API 的 JNI 内存管理

当我使用JNI方法构建一个java对象时,为了将它作为参数传递给我使用JNI调用API调用的java方法,我该如何管理它的内存?这是我正在使用的:我有一个C对象,它有一个比free()更复杂的析构函数方法。此C对象将与Java对象相关联,一旦应用程序完成了Java对象,我就不再需要C对象了。我正在像这样创建Java对象(为清楚起见省略了错误检查):c_object=c_object_create();class=(*env)->FindClass(env,"my.class.name");constructor=(*env)->GetMethodID(env,class,"","(J)

java - 编译器在运行前将 Java 字节码转换为独立于平台的 C 代码?

我正在寻找一种编译器,用于在运行前(提前编译)将Java字节码转换为独立于平台的C代码。然后我应该能够使用标准C编译器将C代码编译为目标平台的可执行文件。我了解此方法仅适用于某些不经常修改的Java应用程序。那么有哪些Java-to-C编译器可用? 最佳答案 我可以推荐一个名为JCGO的工具这是C翻译器的Java源代码。如果你需要转换字节码,那么你可以通过一些工具(例如,JadRetro+Jad)反编译类文件并将源文件传递给JCGO。该工具一次翻译您的java程序的所有类并生成C文件(每个类一个.c和.h),这些文件可以进一步编译(

java - 不支持 maxOccurs 大于 5000 的 XMLSchema 的解决方法

我的问题是解析XSD模式,该模式的元素maxOccurs大于5000(但不是unbounded)。这实际上是Xerces(我正在使用,版本2.9.1)或JAXP中的已知问题,如下所述:http://bugs.sun.com/view_bug.do;jsessionid=85335466c2c1fc52f0245d20b2e?bug_id=4990915我已经知道,如果我将我的XSD中的maxOccurs数字从大于5000的数字更改为unbounded,一切都会正常进行。遗憾的是,这不是一个选项在我的情况下(我不能干预XSD文件)。我的问题是:是否有人知道Xerces中针对此问题的其他解

java - 用 C 和 Java 解决数字难题

这个问题是我从另一个论坛翻译成英文的,我觉得很有趣,然后就写了一个Java解决方案。并发现在处理像10000000这样的大数字时存在一些堆大小问题。与我自己的解决方案相比,我想寻求一些真正聪明的解决方案。原帖为中文。我根据自己的理解对它进行了一些修改,使其更清晰。http://zhidao.baidu.com/question/1637660984282265740.html?sort=6&old=1#here下面是拼图:10000rowsofnumbers;1row:2,4,6,8...2K(2K这就是接下来部分要用到的所有行。现在我们将计算从第1行和第2行开始的数字的重复次数:整数

java - JVM跳转指令的偏移量怎么会是32768呢?

在写answertoaquestionaboutJVMbytecodeoffsets时,我注意到javac的行为和生成的类文件中有一些我无法解释的东西:像这样编译类的时候classFarJump{publicstaticvoidmain(Stringargs[]){call(0,1);}publicstaticvoidcall(intx,inty){if(x那么生成的字节码将包含以下if_icmpge说明:publicstaticvoidcall(int,int);Code:0:iload_01:iload_12:if_icmpge327685:iinc1,18:iinc1,1...根